<?php
/**
 * Answer
 */
class Answer extends ActiveRecord {
	
	protected $tableName = 'answer';
	public $pkName = 'ID_answer';
	
	protected $arrSettings = array(
			'created_at' => true,  // в БД храним время создания
			'updated_at' => true, 	// в БД храним время редактирования
			'author' => true			// в БД храним автора (ID_user)
	);
	public $validatesLengthOf = array(
			'text' => array('minimum' => 2, 'maximum' => 2000, 'message' => 'от 2 до 2000 символов'),
	);
	
	public function makeBestAnswer() {
		$objDB = Service_Database::instance();
		// Стираем запись ранее отмеченного лучшего ответа  устанавливаем флаг на новый ответ
		$stmt = ("UPDATE `answer` SET `answer`.`is_the_best`=0 WHERE `answer`.`ID_question`='" . $this->getField('ID_question') . "'");
		$objDB->query($stmt);
		$this->updateField('is_the_best', 1);		
	}
	
	public function afterSave() {
		$objDB = Service_Database::instance();
		// Получаем id автора вопроса на который сохраняется ответ
		$stmt = "SELECT `question`.`ID_user` FROM question WHERE `question`.`ID_question`='" . $this->getField('ID_question') . "'";
		$userId = $objDB->selectSimpleField($stmt);
		// Увеличиваем счётчик непрочитанных ответов на вопросы пользователя, на чей вопрос сохраняется ответ
		User_User::changeNumber('+','questionEvents', $userId);
	}
}
?>